#pragma once

#include "Globals.hpp"
#include <vector>
using namespace std;

//Game state base class
class GameState
{
public:
    virtual void handle_events() = 0;
    virtual void logic() = 0;
    virtual void render() = 0;
	virtual void add_chat_messages(vector<char*> messages) = 0;

    virtual ~GameState(){};

	static int stateID;
	static int nextState;
};



//State status manager
void set_next_state( int newState );

//State changer
void change_state();

//Game state object
static GameState *currentState = NULL;